package com.hsm12;

public class Test {
    public void a(){
        //在局部内部类中访问的变量必须是被final修饰的
        final int num = 10;//被final修饰之后的变量是不可以进行更改的
        class A{
            public void b(){
                //num = 20;
                System.out.println(num);
            }
        }
    }
    //多态的应用，如果类B在整个项目中只用一次，那么就没必要单独创建一个B类，因此用内部类就行了
    public Comparable b(){
        class B implements Comparable{
            @Override
            public int compareTo(Object o) {
                return 100;
            }
        }
        return new B();
    }
    //和上面的代码是等效的，这是匿名内部类
    public Comparable c(){
      return new Comparable() {
          @Override
          public int compareTo(Object o) {
              return 3000;
          }
      };
    }

    public void d() {
        //接口等于后面的实现类
        Comparable com = new Comparable() {
            @Override
            public int compareTo(Object o) {
                return 3000;
            }
        };
       System.out.println(com.compareTo("abc"));
    }


}
